.. _ecmSxSD_SetInputEnv: ecmSxSD_SetInputEnv =================== ------------------- SYNOPSIS -------- .. code-block:: none t_success ecmSxSD_SetInputEnv( t_i32 NetID, t_i32 Axis, t_dword LogBitAddr, t_bool IsInvertLogic, t_i32 FilterCount, t_i32 *ErrCode ) DESCRIPTION ----------- - SD입력 신호의 환경을 설정하는 함수입니다. PARAMETER --------- - NetID : Network 번호 - Axis : 대상 축 번호 - LogBitAddr : 논리비트주소를 나타내는 인자입니다. - IsInvertLogic : 신호의 입력 로직을 반대로 적용할 것인지를 나타내는 인자입니다 +-------+------------------------------------------+ | Value | Meaning | +=======+==========================================+ | 0 | 입력 값이 0이면 SD 기능이 활성화 됩니다. | +-------+------------------------------------------+ | 1 | 입력 값이 1이면 SD 기능이 활성화 됩니다. | +-------+------------------------------------------+ - FilterCount : SD 입력 신호에 적용할 필터의 주기를 설정하는 인자입니다. 이 값의 단위는 통신 사이클의 카운트 단위입니다. 입력 신호의 ACTIVE 상태가 지정한 사이클 카운트 이상의 시간 동안 유지되지 않으면 해당 입력신호는 무효 처리됩니다. - ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다. RETURN VALUE ------------ - 함수 수행의 성공 여부를 반환합니다. +-------+--------------------------------------+ | Value | Meaning | +=======+======================================+ | 0 | 함수 수행에 실패하였음을 의미합니다. | +-------+--------------------------------------+ | 1 | 함수 수행에 성공하였음을 의미합니다. | +-------+--------------------------------------+ EXAMPLE ````````````` .. code-block:: cpp :linenos: #define NETID 0 #define AXIS 0 void OnInitialSetup_SD () { #define SD_CH 0 // D/I CH0을 HEMG 신호로 사용하는 것으로 가정함 #define FILTER_COUNT 1 // 필터카운트값을 1로 설정 => 2회의 통신 사이클 동안 입력상태를 유지하지 않으면 노이즈로 처리 t_i32 errCode; t_dword dwLogBitAddr; // HEMG로 사용할 입력채널 설정 dwLogBitAddr = ecdiLogBitAddr_FromGlobalChannel (NETID, SD_CH, &errCode); // 전역채널 -> 논리비트주소로 변환 ecmSxSD_SetInputEnv (NETID, AXIS, dwLogBitAddr, false, FILTER_COUNT, &errCode); // SD 입력 채널 등록 ecmSxSD_SetLatchMode (NETID, AXIS, false, &errCode); // SD 래치 모드 설정 } void OnStartMove_SD() { #define NORM_SPEED 500000 #define SD_SPEED 30000 t_i32 errCode; ecmSxSD_SetSpeed (NETID, AXIS, SD_SPEED, &errCode); // SD 속도 설정 ecmSxSD_SetEnable (NETID, AXIS, true, &errCode); // SD 속도 설정 ecmSxCfg_SetSpeedPatt (NETID, AXIS, ecmSMODE_SCURVE, 0, 0, NORM_SPEED, NORM_SPEED*5, NORM_SPEED*5, &errCode); ecmSxMot_VMoveStart (NETID, AXIS, ecmDIR_P, &errCode); // 이 이후에 축의 이송은 SD신호가 감지되지 않으면 NORM_SPEED 속도로 이송되다가, SD 신호가 ON으로 감지되면 SD_SPEED 속도로 이송하게 된다 }